跳到主要内容

2.左/右旋转器

构建一个100位的左右循环移位器,具有同步加载和左右移动使能功能。与移位器不同,循环移位器会将移出的一位从寄存器的另一端移入,而移位器会丢弃移出的位并移入一个零。如果启用,循环移位器会让位围绕一圈旋转而不修改或丢弃它们。

  • load: 使用data[99:0]的数据加载循环移位寄存器,而非执行循环移位操作。
  • ena[1:0]: 选择是否以及向哪个方向进行循环移位。
    • 2'b01 表示向右循环移位一位

    • 2'b10 表示向左循环移位一位

    • 2'b00 和 2'b11 不进行循环移位。

  • q: 循环移位器的内容。

模块声明

module top_module(
input clk,
input load,
input [1:0] ena,
input [99:0] data,
output reg [99:0] q);

做题区